home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 4 / Light ROM 4 - Disc 1.iso / text / maillist / 1995 / 120895.doc / 000349_lightwave@garcia.com _Thu Dec 14 01:58:28 1995.msg < prev    next >
Internet Message Format  |  1996-01-16  |  4KB

  1. Received: from relay5.UU.NET (relay5.UU.NET [192.48.96.15]) by keeper.albany.net (8.7.1/8.7.1) with ESMTP id BAA04213 for <dwarner@albany.net>; Thu, 14 Dec 1995 01:58:27 -0500 (EST)
  2. Received: from garcia.com by relay5.UU.NET with SMTP 
  3.     id QQzuat29356; Thu, 14 Dec 1995 01:46:44 -0500 (EST)
  4. Received: from  (localhost) by garcia.com (5.x/SMI-SVR4)
  5.     id AA03924; Thu, 14 Dec 1995 01:47:05 -0500
  6. Date: Thu, 14 Dec 1995 01:47:05 -0500
  7. Errors-To: dwarner@albany.net
  8. Message-Id: <199512140447.UAA02615@netcom18.netcom.com>
  9. Errors-To: dwarner@albany.net
  10. Reply-To: lightwave@garcia.com
  11. Originator: lightwave@garcia.com
  12. Sender: lightwave@garcia.com
  13. Precedence: bulk
  14. From: bhood@netcom.com (robert hood)
  15. To: Multiple recipients of list <lightwave@garcia.com>
  16. Subject: AMAPI: a highly-biased account
  17. X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
  18. Status: RO
  19. X-Status: 
  20.  
  21. I saw the post about this new 3D Modeler, and decided to check it out.
  22. Aside from the hails over the unique interface, I noticed that it had
  23. a scripting system.  So, you know me, I had to check it out...
  24.  
  25. ARRGGGHHH!  It's Tcl!  Run for your lives!  =|^)
  26.  
  27. Here's one of the simpler scripts, 'cylinder.tcl', that creates a cylinder
  28. using AMAPI:
  29.  
  30. -------------------------------------------------------------------------
  31. #SPEC -realname ''make a cylinder''
  32.  
  33. set res [getvalue -type1 ''int'' -name1 ''nb tranches'' -value1 10 -type2 ''world'' -name2 ''hauteur'' -value2 5 -type3 ''world'' -name3 ''rayon'' -value3 4]
  34. if {$res == ""} return
  35.  
  36. set nbslices [.match $res result1 -int]
  37. set high [.match $res result2 -world]
  38. set radiu [.match $res result3 -world]
  39.  
  40. set oldplane [.amapi plane]
  41. .amapi setplane -viewup
  42. set circ [.match [circle -radius [.world2unit $radiu] -numpts 8 -orig {0 0 0}] shape -shape]
  43. if {$circ == ""} return
  44. newshape mycircle $circ
  45.  
  46. .amapi setplane -viewfront
  47. set pt1 [lindex [mycircle -points] 0]
  48. set pt2 [list [lindex $pt1 0] [expr [lindex $pt1 1] + $high] [lindex $pt1 2]]
  49.  
  50. newshape myprofil {
  51.     addpoint $pt1
  52.     addpoint $pt2
  53. }
  54. myprofil -status open 
  55. myprofil -checkin
  56.  
  57. set prof [myprofil -ref]
  58. set profil [smooth -shape $prof -range $nbslices]
  59.  
  60. extrude -curve1 $circ -curve2 $profil -close
  61. set newplane [.match $oldplane plane -string]
  62. .amapi setplane $newplane
  63. -------------------------------------------------------------------------
  64.  
  65. Since I cannot quite figure out what is going on in this script (and
  66. don't want to take the time to), I did a BML script to create a
  67. user-defined cylinder, complete with a user interface:
  68.  
  69. -------------------------------------------------------------------------
  70. main
  71. {
  72.     var rad,top,bottom,axis,sides;
  73.     var items[3];
  74.  
  75.     rad = <1.0,1.0,1.0>;
  76.     top = 1.0;
  77.     bottom = 0.0;
  78.     axis = 2;       // Y
  79.     sides = 16;
  80.  
  81.     reqbegin("Cylinder");
  82.  
  83.     var c1 = addcontrol(rad,"Radius");
  84.     var c2 = addcontrol(top,"Top");
  85.     var c3 = addcontrol(bottom,"Bottom");
  86.     items[1] = "X"; items[2] = "Y"; items[3] = "Z";
  87.     var c4 = addcontrol(axis,"Axis",items);
  88.     var c5 = addcontrol(sides,"Sides");
  89.  
  90.     if(reqpost())
  91.     {
  92.         rad = getvalue(c1);
  93.         top = getvalue(c2);
  94.         bottom = getvalue(c3);
  95.         axis = getvalue(c4);
  96.         sides = getvalue(c5);
  97.     }
  98.     else
  99.         return;
  100.  
  101.     makedisc(rad,top,bottom,items[axis],sides);
  102. }
  103. -------------------------------------------------------------------------
  104.  
  105. I don't know about you, but, better interface or not, I'd really rather
  106. use BML.  =|^)
  107.  
  108. Render me gone,               |||
  109. Bob                         ^(===)^
  110. -------------------------oOO--(_)--OOo--------------------------------------
  111. Bob Hood            | All governments suffer from a recurring problem:
  112. Virtual Visions Inc.| Power attracts pathological personalities.  It is not
  113. 1.303.989.4191      | that power corrupts, but that it is magnetic to the
  114.                     | corruptible.  Such people have a tendency to become
  115. bhood@netcom.com    | drunk on violence, a condition to which they are
  116. hood@cqgrd.com      | quickly addicted              - Frank Herbert
  117. ----------------------------------------------------------------------------